One type of memory is known as a Read Only Memory (ROM). A conventional ROM bitcell consists of a single NMOS transistor. The bitline (BL) is pre-charged high. When the wordline (WL) goes high, if a “zero” is stored in the bitcell, the bitline will fall. If a “one” is stored in the bitcell, the bitline will stay high. This bitline is then sensed to complete the read operation. A “zero” is stored in the bitcell when all the connections are intact and the transistor turns ON when the WL goes high. A “one” is stored when one of the three possible connections is broken and even if the WL goes high, the BL will not be pulled low.
There are basically three types of ROMs that exist. These include a Diffusion ROM or DiffROM shown in FIG. 1, wherein the “G” (gate) is broken or not formed. This is done by removing the diffusion under the gate contact. This is diffusion programmable ROM. Another type of Rom is known as a Via ROM. In a Via ROM, typically the connection between “D” (drain) and BL is broken by removing a via. This via could be via1, via2, via3, etc. This is via programmable ROM. A third type of ROM is known as a Contact ROM. In a Contact ROM, typically the connection between “S” (source) and VSS is broken using a contact between diffusion and metal1. Note that the WL is always connected to the “G” (gate) terminal of the transistor.
The conventional architecture that is used with these bitcells has row decoders that select a WL. The bitlines are pre-charged high before the WL goes high. Once the WL goes high, if a “zero” is stored into the bitcell, the BL will fall, otherwise it will stay high. The bitlines in a mux are muxed at the bottom of the core array. For example, if the column mux is 8, then one active BL out of the 8 bitlines in a mux is routed to the input of the sense amplifier. The sense amplifier thus gives one bit output Q per mux.